package com.xiaoshuidi.cloud.module.contract.controller.admin.bill.vo.rentOrder;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoshuidi.cloud.framework.common.pojo.PageParam;
import com.xiaoshuidi.cloud.module.contract.util.date.DateUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

import static com.xiaoshuidi.cloud.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

@Data
@Builder
public class RentOrderQueryVo extends PageParam {

    /**
     * 公寓id
     */
    @Schema(description = "公寓id")
    private Long apartmentId;

    /**
     * 房间id
     */
    @Schema(description = "房间id")
    private Long roomId;

    /**
     * 账单开始时间
     */
    @Schema(description = "账单开始时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
//    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate startTime;

    /**
     * 账单结束时间
     */
    @Schema(description = "账单结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
//    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate endTime;

    /**
     * 应收款开始时间
     */
    @Schema(description = "应收款开始时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
//    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate startTimeReceivable;

    /**
     * 应收款结束时间
     */
    @Schema(description = "应收款结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
//    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate endTimeReceivable;

    /**
     * 账单结束开始时间
     */
    @Schema(description = "应收款开始时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
//    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate startTimePay;

    /**
     * 账单结束结束时间
     */
    @Schema(description = "应收款结束时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_DATE)
//    @JsonFormat(pattern = DateUtils.FORMAT_DATE, timezone = TIME_ZONE_DEFAULT)
    private LocalDate endTimePay;
    /**
     * 账单状态
     */
    @Schema(description = "账单状态")
    private String orderStatus;

    /**
     * 账单类型
     */
    @Schema(description = "账单类型")
    private String orderType;
    /**
     * 客户类型
     */
    @Schema(description = "客户类型")
    private String customerType;

    /**
     * 搜索关键字
     */
    @Schema(description = "搜索关键字")
    private String searchKey;

    /**
     * 租客ID
     */
    private Long memberId;


}
